/*--------------------------------------------------------------------------------------------------
Yatak Operation System Project Copyright 2012-2013
Author : Ilya Churaev
Started : 20 Jan 2013		Updated : 20 Jan 2013
File Name : initrd.h		Purpose : Defines the interface for and structures relating to the initial ramdisk.
--------------------------------------------------------------------------------------------------*/
#ifndef _INITRD_H
#define _INITRD_H

#ifdef __cplusplus
extern "C" {
#endif

#include <types.h>
#include <fs.h>

typedef struct
{
    uint32 nfiles;			// Число файлов в ramdisk.
} initrd_header_t;

typedef struct
{
    uint8 magic;			// Магическое число для проверки ошибок.
    sint8 name[64];			// Имя файла.
    uint32 offset;			// Смещение в initrd, указывающее откуда начинается файл.
    uint32 length;			// Длина файла.
} initrd_file_header_t;

// Инициализация initial ramdisk. Ему передается адрес модуля module,
// а возвращается нод созданной файловой системы.
fs_node_t *init_initrd(uint32 location);

#ifdef __cplusplus
}
#endif

#endif
